home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d6 / glazer.arc / DATESINM.BAS < prev    next >
BASIC Source File  |  1988-10-07  |  2KB  |  65 lines

  1. 100 'Dates in Month ("DATESINMONTH")
  2. 110 CLS
  3. 120 COLOR 0,15 : PRINT "Dates in Month" : COLOR 15,0
  4. 130 PRINT
  5. 140 '     Get names of months
  6. 150 DIM MONTHNAMES$ (12)
  7. 160 FOR N = 1 TO 12
  8. 170   READ MONTHNAMES$ (N)
  9. 180 NEXT N
  10. 190 DATA January, February, March, April, May, June
  11. 200 DATA July, August, September, October, November, December
  12. 210 '     Get names of days
  13. 220 DIM DAYNAMES$ (7)
  14. 230 FOR N = 0 TO 7
  15. 240   READ DAYNAMES$ (N)
  16. 250 NEXT N
  17. 260 DATA Saturday, Sunday, Monday, Tuesday
  18. 270 DATA Wednesday, Thursday, Friday, End
  19. 280 '     Get words 1st through 5th
  20. 290 DIM ORDINALS$ (5)
  21. 300 FOR N = 1 TO 5
  22. 310   READ ORDINALS$ (N)
  23. 320 NEXT N
  24. 330 DATA 1st, 2nd, 3rd, 4th, 5th
  25. 340 '     Get number of days in months
  26. 350 DIM NDAYS (12)
  27. 360 FOR N = 1 TO 12
  28. 370   READ NDAYS (N)
  29. 380 NEXT N
  30. 390 DATA 31, 28, 31, 30
  31. 400 DATA 31, 30, 31, 31
  32. 410 DATA 30, 31, 30, 31
  33. 420 '     Let user enter date
  34. 430 INPUT "Day of week: ", DAY$
  35. 440 'Find number of day
  36. 450 IF LEFT$ (DAY$, 1) > "Z"  THEN MID$(DAY$, 1) =                                     CHR$ (ASC (LEFT$ (DAY$, 1) ) - 32)
  37. 460 DAY = 0
  38. 470 WHILE (DAY <= 6) AND (LEFT$ (DAYNAMES$ (DAY), 2) <> LEFT$ (DAY$, 2) )
  39. 480   DAY = DAY + 1
  40. 490 WEND
  41. 500 IF DAY = 7  THEN GOTO 430    'Invalid day
  42. 510 INPUT "Month (1-12): ",MONTH
  43. 520 IF MONTH < 1 OR MONTH > 13  THEN PRINT "** No such month **" : GOTO 510
  44. 530 INPUT "Year: ", YEAR
  45. 540 '     Make February 29 days long in leap years
  46. 550 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
  47. 560 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
  48. 570 '     Find day for first of month
  49. 580 FACTOR = 365 * YEAR + 31 * (MONTH - 1) + 1
  50. 590 'January or February
  51. 600 IF MONTH <= 2  THEN FACTOR = FACTOR + (YEAR - 1) \ 4 -                             INT (3/4 * ( (YEAR - 1) \ 100 + 1 ) )
  52. 610 'March or later
  53. 620 IF MONTH >= 3  THEN FACTOR = FACTOR - INT (.4 * MONTH + 2.3) + YEAR \ 4 -         INT (3/4 * (YEAR \ 100 + 1) )
  54. 630 FACTOR = FACTOR - INT (FACTOR / 7) * 7
  55. 640 IF DAY >= FACTOR  THEN DATE = DAY + 1 - FACTOR                                     ELSE DATE = DAY + 8 - FACTOR
  56. 650 '     Print the dates
  57. 660 PRINT
  58. 670 N = 1
  59. 680 WHILE DATE <= NDAYS (MONTH)
  60. 690   PRINT ORDINALS$(N); SPC(2); DAYNAMES$(DAY); DATE; MONTHNAMES$ (MONTH)
  61. 700   N = N + 1
  62. 710   DATE = DATE + 7
  63. 720 WEND
  64. 730 END
  65.